#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 1 如果直接给出字符，则表示精确匹配
# 2 \d 表示数字， \w 表示字母或数字， . 可以匹配任意字符，\s 表示空白符，包括Tab
# 3 * 表示任意长度，+ 表示至少一个字符，？ 表示0或1个字符，{n} 表示n个字符，{n,m} 表示n到m个字符
# 如 \d{3}\s+\d{3,8}
# - 是特殊字符，需要\转义 \-

# 更精确的匹配范围 表示 []
# 如 [0-9a-zA-Z\_] 可以匹配一个数字，字母，或者下划线
# A|B 可以匹配A，B
# ^ 表示行的开头， ^\d 表示必须以数字开头
# $ 表示行的结束，\d$ 表示必须以数字结束

# re 模块
# r作为字符串的前缀，可省略转义
import re

print re.match(r'^\d{3}\-\d{3,8}$', '010-12345')
print re.match(r'^\d{3}\-\d{3,8}$', '010 12345')

# 切割字符串功能比纯字符串更强
print 'a b   c'.split(' ')
print re.split(r'\s+', 'a b   c')
print re.split(r'[\s\,]+', 'a, b  c,, c')
